/*
 * @Author: Z.MingYu
 * @Date: 2025-05-16 09:12:43
 * @Description: 工具库
 */

import lodash_merge from 'lodash/merge';
import lodash_clone from 'lodash/cloneDeep';

/**
 * 判断是否空对象
 * @param {*} obj
 * @returns
 */
export function isNull(obj) {
  return obj === null || obj === undefined;
}

/**
 * 判断是否非空对象
 * @param {*} obj
 * @returns
 */
export function notNull(obj) {
  return !isNull(obj);
}

/**
 * 判断是否空字符串
 * @param {*} str
 * @returns
 */
export function isEmpty(str) {
  return isNull(str) || str == '';
}

/**
 * 判断是否非空字符串
 * @param {*} str
 * @returns
 */
export function notEmpty(str) {
  return !isEmpty(str);
}

/**
 * 判断是否为数值类型
 * @param {*} val
 */
export function isNumber(val) {
  return (typeof val === 'number' || val instanceof Number) && Number.isFinite(val.valueOf());
}

/**
 * 深度合并
 * @param {*} def
 * @param {*} obj
 * @returns
 */
export function merge(def, obj) {
  return lodash_merge({}, def, obj);
}

/**
 * 深度复制
 * @param {*} obj
 * @returns
 */
export function clone(obj) {
  return lodash_clone(obj);
}
